#pragma once

#include <logger/entry.hpp>
#include <engine.script/Module.hpp>




namespace Engine
{
	namespace Edit
	{
		class CompilationResult
		{
		public:

			typedef std::vector<logger::entry>   Messages;

			CompilationResult(Engine::Script::Module::ptr module, Messages messages);
			virtual ~CompilationResult();



			/**
			 * @returns the built' script module
			 * @warning may be empty when no module could be build
			 */
			Engine::Script::Module::ptr module() const;

			/**
			 * @returns a list of all messages during compilation
			 */
			const Messages& messages() const;

		private:

			Engine::Script::Module::ptr   m_module;
			Messages                      m_messages;
		};
		///////////////////////////////////////////////////////////////////////////////////////////
	}
	///////////////////////////////////////////////////////////////////////////////////////////////
}
///////////////////////////////////////////////////////////////////////////////////////////////////
